package org.cytoscape.myapp.cytoscape_app_v1.internal.tasks;

import java.util.HashMap;
import java.util.List;
import java.util.Set;

import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNode;
import org.cytoscape.myapp.cytoscape_app_v1.internal.grupos.Grupos;
import org.cytoscape.myapp.cytoscape_app_v1.internal.grupos.clasificadores.Clasificador;
import org.cytoscape.work.Task;
import org.cytoscape.work.TaskMonitor;

public class GeneradorGrupos /*implements Task */{

	private CyNetwork network;
	private Clasificador clasificador;
	private Grupos grupos;
	private HashMap<CyNode,List<Object>> nodesInfo;
	
	public GeneradorGrupos(CyNetwork network, Clasificador clasificador, Grupos grupos, HashMap<CyNode,List<Object>> nodesInfo){
		this.network = network;
		this.clasificador = clasificador;
		this.grupos = grupos;
		this.nodesInfo= nodesInfo;
	}


	
	public void generarGrupos(){ //run(TaskMonitor taskMonitor) throws Exception {
//		taskMonitor.setTitle("Generando grupos");
//		taskMonitor.setStatusMessage("Iniciando");
		Set<CyNode> keys = nodesInfo.keySet();
		for(CyNode node:keys){
//			taskMonitor.setStatusMessage("Clasificando Nodo"+network.getDefaultNodeTable().getRow(node.getSUID()).getRaw("shared name"));
			clasificador.addNodeToGroup(node, nodesInfo.get(node), grupos);
		}
		grupos.createAndRegisterAllGroups();
//		taskMonitor.setStatusMessage("Finalizando");
	}

//	@Override
//	public void cancel() {
//		// TODO Auto-generated method stub
//		
//	}
	
}
